{\rtf1\ansi\ansicpg1250\cocoartf1038\cocoasubrtf350
{\fonttbl\f0\fswiss\fcharset0 ArialMT;\f1\fnil\fcharset0 LucidaGrande;}
{\colortbl;\red255\green255\blue255;\red53\green53\blue53;\red53\green53\blue53;}
\paperw11900\paperh16840\margl1440\margr1440\vieww25100\viewh14760\viewkind0
\deftab720
\pard\pardeftab720\ql\qnatural

\f0\fs24 \cf2 otoz rozwazmy sok kubus. Generalnie mamy kontrahentow, ktorzy sa powiazani zamowieniem (wpierw mailem z produktem ale to bezsensu). Zamowienia dzielimy na sprzedaz, zakup oraz przechowywanie. A wiec jesli jakies zamowienie bedzie naplywac od konrahenta to:
\f1 \uc0\u8232 
\f0 a) przechowywanei - sprawdzamy magazyny w kraju z ktorego jest kontrahent i lokujemy towar tam gdzie jest miejsce lub jesli konrahent tak sobie wymusi w zamowieniu to sprawdzamy jedynie w danym magazynie (nie kazdy bedzie sobie zyczyl miec towar np w Gdansku bedac z poldunia) i ten towar jest nie do ruszenia po prostu jest oplacany przez dany okres czasu do momentu wywozu z magazynu. Towar taki zapisywany w bazie w tabeli product ma odpowiedni status ktory nie bedzie go podliczal w tabeli subcategory (to jest tabela w ktorej beda podliczone wszystkie sztuki kubusi dostepne do sprzedazy i bedace na stanie magazynu. Dodatkowo tablea subcategory bedzie miala nadrzenda tabele kategory z wartosciami typu : zywnosc, napoje, agd, etc)
\f1 \uc0\u8232 
\f0 b) sprzedaz - przymujemy zamowienie na zakup N produktow i z tabeli subcategory sprawdzamy czy mozemy zrealizowac czy tez nie (tutaj od strony kodu nalezy zadbac o pobieranie danych grupowanych po magazynach, aby wiedziec czy towar mozemy z jednego magazynu sprzedac czy tez trzeba cos przewiezc i sie to oplaca)
\f1 \uc0\u8232 
\f0 c) zakup -> w przypadku braku nalezytej ilosci sprawdzamy po kontrahentach kto co dostaraczal lub dodajemy nowego, rezerwujemy miejsce w magazynie i zamawiamy towar updatetujac tabele subcategory\
\
W systemie jako dane stale, niezmienne dynamicznie mozemy wyroznic:\
a) uzytkownikow\
b) magazyny\
c) kontrahentow\
\
Mam tutaj na mysli, dane ktore nie sa tak dynamiczne jak produkty i zamowienia.\
\
Zamowienia rozrozniamy na 3 typy:\
\
a) przechowywanie - kontrahent MASPEX. Sklada zamowienie na przechowywanie 100 palet kubusi, 100 palet cremony w Magazynie 1 oraz 200 palet kubus fit w Magazynie 2 (Niemcy). W zamowieniu otrzymujemy informacje o nastepujacych danych:\
	- order_id\
	- order_type_id - okresla typ zamowienia, jesli przechowywanie to nie jest ono brane pod uwage przy wszelkeigo typu kalkulacjacjach, gdyz wyglada to tak, iz otrzymalismy 1tone na przechowanie i 1 tona wyjedzie po przechowaniu, nie moze\
	- patrner_id\
	- person_partner_id\
	- person_system_id - id uzytkownika przyjmujacego zamowienie\
	- modified_user_id - id uzytkownika dokonujacego modyfikacji\
	* wybor osoby bedzie zrealizowany w ten sposob, ze po wyborze kontrahenta wyswietli sie lista osob przypisanych do danego klienta, jesli osoby odpowiedzialnej za zamowienie nie bedzie na liscie, wtedy nalezy taka osoba dodac Z POZIOMU dodawania zamowienia\
	- \cf3 status_id - okresla co dzieje si\uc0\u281  z zam\'f3wieniem, np. otrzymane, zmgazynowane, czeka na zabranie, etc. STATUSY nie determinuja czy zamowienie jest archiwalne czy nie, tzn. zamowienie moze byc zakonczone ale to pracownik determinuje ktore jest archiwalne, a ktore nie.\cf2 \
	* order_product (tabela laczaca zamowienie z produktem w relacji  )\
	- price\
	- receive_date - data otrzymania\
	- release_date - data wyjazdu z magazynu\
	- last_modified\
	- is_archived - ustawiane na true w przypadku ustawienie jednego ze statusow (mniemam, ze ostatniego) determinuj\uc0\u261 ce\
	- description\
\
\
	tabela ORDER_PRODUCT\
	- order_id\
	- order_product_id\
	- category_id\
	- product_id\
 \cf3 	- storehouse_id (uaktualniana w systemie) - przypisalem to do kazdej pozycji zamowienia ze wzgledu na uniwersalnosc takiego rozwiazania, w niczym nie przeszkadza, abysmy mogli calosc przypisac do jednego magazynu jak rowniez w niczym nie przeszkadza, aby przypisac do roznych poszczegolne pozycje\
	- unit_price\
	- palette_type - tutaj bedzie wartosc 0 lub 1 bez relacji do kolejnej tabelii bo beda to wartosci nie zmienne nie rozszerzalne: 0-euro paleta duza, 1-euro paleta mala\
	- quantity - liczba palet\
	- capacity - liczba sztuk na palecie\
	- unit_id - relacja do tabelii z jednostkami miary\
	- name\
	- barcode_id - relacja do tabelii z kodami kreskowymi gdzie bedzie jedynie id kodu, numer (zczytywanie czytnikami dostarcza nam numer) i opcjonalnie sciezka do pliku graficznego z kodem jesli to my bedziemy wydawac towar\
	- expiration_date - data waznosci\
	- secured - oznacza czy towar ze szczegolna ochrona czy nie np. szklo\
	- description\
	}